home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / fbug68k.arc / MM.C < prev    next >
C/C++ Source or Header  |  1989-08-17  |  2KB  |  112 lines

  1. #include"userdef.h"
  2.  
  3. /* ***************************************************** */
  4.  
  5. mmcmd(argc,argv)
  6. int argc;
  7. char *argv;
  8. {
  9.  
  10. register int num, size, data, start;
  11. extern int error;
  12.     
  13.     if (argc == 2 || argc == 3)
  14.     {
  15.         striparg(argv);
  16.         size = getsize(argv,ERR04);
  17.         if (size < 0)
  18.             return(0);
  19.         start = getnum(argv,ERR02,DEFAULTSCALE);
  20.         if (error)
  21.             return(0);
  22.         print(MMASHELPMSG);
  23.         while (TRUE)    
  24.         {
  25.             switch (size)
  26.             {
  27.                 case 1:
  28.                     data = get8(start);
  29.                     print("%c%8x %c%2X ? ",HEXDEL,start,HEXDEL,data);
  30.                     break;
  31.                 case 2:    
  32.                     data = get16(start);
  33.                     print("%c%8x %c%4X ? ",HEXDEL,start,HEXDEL,data);
  34.                     break;
  35.                 default:    
  36.                     data = get32(start);
  37.                     print("%c%8x %c%8X ? ",HEXDEL,start,HEXDEL,data);
  38.                     break;
  39.             }
  40.             data = getline(argv);
  41.             if (data == 0)
  42.                 start = start + size;
  43.             else if (data > 1)
  44.             {
  45.                 print(ERR01);
  46.             }
  47.             else
  48.             {
  49.                 switch (argv[0])
  50.                 {
  51.                     case BACKUP:
  52.                         shiftarg(argv,1);
  53.                         if (data == 1)
  54.                         {
  55.                             num = getnum(argv,ERR03,DEFAULTSCALE);
  56.                             if (error)
  57.                                 num = 0;
  58.                         }
  59.                         else
  60.                             num = size;
  61.                         start = start - num;
  62.                         continue;
  63.                     case FINISH:
  64.                     case 'q':
  65.                         return(0);
  66.                     case NEXT:
  67.                         shiftarg(argv,1);
  68.                         if (data == 1)
  69.                         {
  70.                             num = getnum(argv,ERR03,DEFAULTSCALE);
  71.                             if (error)
  72.                                 num = 0;
  73.                         }
  74.                         else
  75.                             num = size;
  76.                         start = start + num;
  77.                         continue;
  78.                     case HELP:
  79.                         print(MMASHELPMSG);
  80.                         continue;
  81.                     default:
  82.                         data = getnum(argv,ERR03,DEFAULTSCALE);
  83.                         if (error)
  84.                             break;
  85.                         else
  86.                         {
  87.                             switch (size)
  88.                             {
  89.                                 case 1:
  90.                                     put8(start,data & MASK8);
  91.                                     break;
  92.                                 case 2:    
  93.                                     put16(start,data & MASK16);
  94.                                     break;
  95.                                 case 4:    
  96.                                     put32(start,data);
  97.                                     break;
  98.                             }
  99.                             start = start + size;
  100.                         }
  101.                         break;
  102.                     }
  103.             }
  104.         }
  105.     }
  106.     else
  107.         print(ERR01);    
  108. }
  109.  
  110. /* ***************************************************** */
  111.  
  112.